package com.enlorenz.common.excel;

import java.io.OutputStream;
import java.util.List;

/**
 * 数据导出者
 * @author Karma
 */
public interface IDataExporter<T> {
	
	
	/**
	 * 设置允许显示的属性列表
	 * 一旦设置,就只有列表内的有注释的属性生效
	 * @param permitPropList 允许的属性列表
	 */
	void setPermitPropList(String [] permitPropList);
	
	/**
	 * 设置禁用属性列表
	 * @param ignoreList 禁用属性列表
	 */
	void setIgnorePropList(String [] ignorePropList);
	
	/**
	 * 设置数据元素遍历器
	 * @param elementIterator 数据元素遍历器
	 */
	void setElementIterator(IDataElementIterator<T> elementIterator);
	
	/**
	 * 设置数据列表
	 * @param dataList 数据列表
	 */
	void setDataList(List<T> dataList);
	
	/**
	 * 导出数据
	 * @param outputStream 输出流
	 */
	void export(OutputStream outputStream);
}
